package com.cloud.nio;

import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

public class NioClient {

    public static void main(String[] args) throws Exception{
        // 建一个socketChannel，就是得到一个网络通道
        SocketChannel socketChannel = SocketChannel.open();

        // 设置为阻塞
        socketChannel.configureBlocking(false);

        // 提供服务器连接地址和端口
        InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 6666);

        // 连接服务器
        if (!socketChannel.connect(inetSocketAddress)) {
            while (!socketChannel.finishConnect()) {
                System.out.println("因为连接需要时间，客户端不会阻塞，可以做其他工作...");
            }
        }

        // 如果连接成功，就发送数据
        String str = "hello, world~";
        // wrap a byte array into a buffer
        ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes());
        // 发送数据，将buffer数据写入到channel当中
        socketChannel.write(byteBuffer);
        System.in.read();

    }
}
